package com.work.biz.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.work.common.core.domain.BaseEntity;

import javax.validation.constraints.NotBlank;

/**
 * 作业对象 biz_work
 *
 * @author lee
 * @date 2021-04-22
 */
@ApiModel
public class BizWork extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 作业ID
     */
    private Long workId;

    /**
     * 课程名
     */
    @NotBlank(message = "课程名不能为空")
    @ApiModelProperty(required = true, value = "课程名")
    private String courseName;

    /**
     * 作业标题
     */
    @NotBlank(message = "作业标题不能为空")
    @ApiModelProperty(required = true, value = "作业标题")
    private String workTitle;

    /**
     * 作业类型（1文字 2文档）
     */
    @NotBlank(message = "作业类型不能为空")
    @ApiModelProperty(required = true, value = "作业类型（1文字 2文档）")
    private String workType;

    /**
     * 作业内容
     */
    @ApiModelProperty( value = "作业内容")
    private String workContent;

    /**
     * 截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty( value = "截止时间")
    private Date deadline;

    /**
     * 作业状态（0正常 1关闭）
     */
    private String status;

    private Long submitNum;

    private Long notSubmitNum;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 创建者ID
     */
    private Long creatorId;
    /**
     * 创建者姓名
     */
    private String creatorName;

    /**
     * 班级ID
     */
    @ApiModelProperty(value = "班级ID")
    private Long[] clazzIds;

    public void setWorkId(Long workId) {
        this.workId = workId;
    }

    public Long getWorkId() {
        return workId;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }

    public String getCourseName() {
        return courseName;
    }

    public void setWorkTitle(String workTitle) {
        this.workTitle = workTitle;
    }

    public String getWorkTitle() {
        return workTitle;
    }

    public void setWorkType(String workType) {
        this.workType = workType;
    }

    public String getWorkType() {
        return workType;
    }

    public void setWorkContent(String workContent) {
        this.workContent = workContent;
    }

    public String getWorkContent() {
        return workContent;
    }

    public void setDeadline(Date deadline) {
        this.deadline = deadline;
    }

    public Date getDeadline() {
        return deadline;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public Long getSubmitNum() {
        return submitNum;
    }

    public void setSubmitNum(Long submitNum) {
        this.submitNum = submitNum;
    }

    public Long getNotSubmitNum() {
        return notSubmitNum;
    }

    public void setNotSubmitNum(Long notSubmitNum) {
        this.notSubmitNum = notSubmitNum;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public Long getCreatorId() {
        return creatorId;
    }

    public void setCreatorId(Long creatorId) {
        this.creatorId = creatorId;
    }

    public String getCreatorName() {
        return creatorName;
    }

    public void setCreatorName(String creatorName) {
        this.creatorName = creatorName;
    }

    public Long[] getClazzIds() {
        return clazzIds;
    }

    public void setClazzIds(Long[] clazzIds) {
        this.clazzIds = clazzIds;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("workId", getWorkId())
                .append("courseName", getCourseName())
                .append("workTitle", getWorkTitle())
                .append("workType", getWorkType())
                .append("workContent", getWorkContent())
                .append("deadline", getDeadline())
                .append("status", getStatus())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
